#ifndef EDP_XML
#define EDP_XML

/* Autogenerated file, DO NOT EDIT manually!

This file was generated by the rules-ng-ng headergen tool in this git repository:
http://github.com/freedreno/envytools/
git clone https://github.com/freedreno/envytools.git

The rules-ng-ng source files this header was generated from are:
- /home/robclark/src/freedreno/envytools/rnndb/msm.xml                 (    676 bytes, from 2015-05-20 20:03:14)
- /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml (   1572 bytes, from 2016-02-10 17:07:21)
- /home/robclark/src/freedreno/envytools/rnndb/mdp/mdp4.xml            (  20915 bytes, from 2015-05-20 20:03:14)
- /home/robclark/src/freedreno/envytools/rnndb/mdp/mdp_common.xml      (   2849 bytes, from 2015-09-18 12:07:28)
- /home/robclark/src/freedreno/envytools/rnndb/mdp/mdp5.xml            (  36965 bytes, from 2016-11-26 23:01:08)
- /home/robclark/src/freedreno/envytools/rnndb/dsi/dsi.xml             (  27887 bytes, from 2015-10-22 16:34:52)
- /home/robclark/src/freedreno/envytools/rnndb/dsi/sfpb.xml            (    602 bytes, from 2015-10-22 16:35:02)
- /home/robclark/src/freedreno/envytools/rnndb/dsi/mmss_cc.xml         (   1686 bytes, from 2015-05-20 20:03:14)
- /home/robclark/src/freedreno/envytools/rnndb/hdmi/qfprom.xml         (    600 bytes, from 2015-05-20 20:03:07)
- /home/robclark/src/freedreno/envytools/rnndb/hdmi/hdmi.xml           (  41472 bytes, from 2016-01-22 18:18:18)
- /home/robclark/src/freedreno/envytools/rnndb/edp/edp.xml             (  10416 bytes, from 2015-05-20 20:03:14)

Copyright (C) 2013-2015 by the following authors:
- Rob Clark <robdclark@gmail.com> (robclark)
- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice (including the
next paragraph) shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/


enum edp_color_depth {
	EDP_6BIT = 0,
	EDP_8BIT = 1,
	EDP_10BIT = 2,
	EDP_12BIT = 3,
	EDP_16BIT = 4,
};

enum edp_component_format {
	EDP_RGB = 0,
	EDP_YUV422 = 1,
	EDP_YUV444 = 2,
};

#define REG_EDP_MAINLINK_CTRL					0x00000004
#define EDP_MAINLINK_CTRL_ENABLE				0x00000001
#define EDP_MAINLINK_CTRL_RESET					0x00000002

#define REG_EDP_STATE_CTRL					0x00000008
#define EDP_STATE_CTRL_TRAIN_PATTERN_1				0x00000001
#define EDP_STATE_CTRL_TRAIN_PATTERN_2				0x00000002
#define EDP_STATE_CTRL_TRAIN_PATTERN_3				0x00000004
#define EDP_STATE_CTRL_SYMBOL_ERR_RATE_MEAS			0x00000008
#define EDP_STATE_CTRL_PRBS7					0x00000010
#define EDP_STATE_CTRL_CUSTOM_80_BIT_PATTERN			0x00000020
#define EDP_STATE_CTRL_SEND_VIDEO				0x00000040
#define EDP_STATE_CTRL_PUSH_IDLE				0x00000080

#define REG_EDP_CONFIGURATION_CTRL				0x0000000c
#define EDP_CONFIGURATION_CTRL_SYNC_CLK				0x00000001
#define EDP_CONFIGURATION_CTRL_STATIC_MVID			0x00000002
#define EDP_CONFIGURATION_CTRL_PROGRESSIVE			0x00000004
#define EDP_CONFIGURATION_CTRL_LANES__MASK			0x00000030
#define EDP_CONFIGURATION_CTRL_LANES__SHIFT			4
static inline uint32_t EDP_CONFIGURATION_CTRL_LANES(uint32_t val)
{
	return ((val) << EDP_CONFIGURATION_CTRL_LANES__SHIFT) & EDP_CONFIGURATION_CTRL_LANES__MASK;
}
#define EDP_CONFIGURATION_CTRL_ENHANCED_FRAMING			0x00000040
#define EDP_CONFIGURATION_CTRL_COLOR__MASK			0x00000100
#define EDP_CONFIGURATION_CTRL_COLOR__SHIFT			8
static inline uint32_t EDP_CONFIGURATION_CTRL_COLOR(enum edp_color_depth val)
{
	return ((val) << EDP_CONFIGURATION_CTRL_COLOR__SHIFT) & EDP_CONFIGURATION_CTRL_COLOR__MASK;
}

#define REG_EDP_SOFTWARE_MVID					0x00000014

#define REG_EDP_SOFTWARE_NVID					0x00000018

#define REG_EDP_TOTAL_HOR_VER					0x0000001c
#define EDP_TOTAL_HOR_VER_HORIZ__MASK				0x0000ffff
#define EDP_TOTAL_HOR_VER_HORIZ__SHIFT				0
static inline uint32_t EDP_TOTAL_HOR_VER_HORIZ(uint32_t val)
{
	return ((val) << EDP_TOTAL_HOR_VER_HORIZ__SHIFT) & EDP_TOTAL_HOR_VER_HORIZ__MASK;
}
#define EDP_TOTAL_HOR_VER_VERT__MASK				0xffff0000
#define EDP_TOTAL_HOR_VER_VERT__SHIFT				16
static inline uint32_t EDP_TOTAL_HOR_VER_VERT(uint32_t val)
{
	return ((val) << EDP_TOTAL_HOR_VER_VERT__SHIFT) & EDP_TOTAL_HOR_VER_VERT__MASK;
}

#define REG_EDP_START_HOR_VER_FROM_SYNC				0x00000020
#define EDP_START_HOR_VER_FROM_SYNC_HORIZ__MASK			0x0000ffff
#define EDP_START_HOR_VER_FROM_SYNC_HORIZ__SHIFT		0
static inline uint32_t EDP_START_HOR_VER_FROM_SYNC_HORIZ(uint32_t val)
{
	return ((val) << EDP_START_HOR_VER_FROM_SYNC_HORIZ__SHIFT) & EDP_START_HOR_VER_FROM_SYNC_HORIZ__MASK;
}
#define EDP_START_HOR_VER_FROM_SYNC_VERT__MASK			0xffff0000
#define EDP_START_HOR_VER_FROM_SYNC_VERT__SHIFT			16
static inline uint32_t EDP_START_HOR_VER_FROM_SYNC_VERT(uint32_t val)
{
	return ((val) << EDP_START_HOR_VER_FROM_SYNC_VERT__SHIFT) & EDP_START_HOR_VER_FROM_SYNC_VERT__MASK;
}

#define REG_EDP_HSYNC_VSYNC_WIDTH_POLARITY			0x00000024
#define EDP_HSYNC_VSYNC_WIDTH_POLARITY_HORIZ__MASK		0x00007fff
#define EDP_HSYNC_VSYNC_WIDTH_POLARITY_HORIZ__SHIFT		0
static inline uint32_t EDP_HSYNC_VSYNC_WIDTH_POLARITY_HORIZ(uint32_t val)
{
	return ((val) << EDP_HSYNC_VSYNC_WIDTH_POLARITY_HORIZ__SHIFT) & EDP_HSYNC_VSYNC_WIDTH_POLARITY_HORIZ__MASK;
}
#define EDP_HSYNC_VSYNC_WIDTH_POLARITY_NHSYNC			0x00008000
#define EDP_HSYNC_VSYNC_WIDTH_POLARITY_VERT__MASK		0x7fff0000
#define EDP_HSYNC_VSYNC_WIDTH_POLARITY_VERT__SHIFT		16
static inline uint32_t EDP_HSYNC_VSYNC_WIDTH_POLARITY_VERT(uint32_t val)
{
	return ((val) << EDP_HSYNC_VSYNC_WIDTH_POLARITY_VERT__SHIFT) & EDP_HSYNC_VSYNC_WIDTH_POLARITY_VERT__MASK;
}
#define EDP_HSYNC_VSYNC_WIDTH_POLARITY_NVSYNC			0x80000000

#define REG_EDP_ACTIVE_HOR_VER					0x00000028
#define EDP_ACTIVE_HOR_VER_HORIZ__MASK				0x0000ffff
#define EDP_ACTIVE_HOR_VER_HORIZ__SHIFT				0
static inline uint32_t EDP_ACTIVE_HOR_VER_HORIZ(uint32_t val)
{
	return ((val) << EDP_ACTIVE_HOR_VER_HORIZ__SHIFT) & EDP_ACTIVE_HOR_VER_HORIZ__MASK;
}
#define EDP_ACTIVE_HOR_VER_VERT__MASK				0xffff0000
#define EDP_ACTIVE_HOR_VER_VERT__SHIFT				16
static inline uint32_t EDP_ACTIVE_HOR_VER_VERT(uint32_t val)
{
	return ((val) << EDP_ACTIVE_HOR_VER_VERT__SHIFT) & EDP_ACTIVE_HOR_VER_VERT__MASK;
}

#define REG_EDP_MISC1_MISC0					0x0000002c
#define EDP_MISC1_MISC0_MISC0__MASK				0x000000ff
#define EDP_MISC1_MISC0_MISC0__SHIFT				0
static inline uint32_t EDP_MISC1_MISC0_MISC0(uint32_t val)
{
	return ((val) << EDP_MISC1_MISC0_MISC0__SHIFT) & EDP_MISC1_MISC0_MISC0__MASK;
}
#define EDP_MISC1_MISC0_SYNC					0x00000001
#define EDP_MISC1_MISC0_COMPONENT_FORMAT__MASK			0x00000006
#define EDP_MISC1_MISC0_COMPONENT_FORMAT__SHIFT			1
static inline uint32_t EDP_MISC1_MISC0_COMPONENT_FORMAT(enum edp_component_format val)
{
	return ((val) << EDP_MISC1_MISC0_COMPONENT_FORMAT__SHIFT) & EDP_MISC1_MISC0_COMPONENT_FORMAT__MASK;
}
#define EDP_MISC1_MISC0_CEA					0x00000008
#define EDP_MISC1_MISC0_BT709_5					0x00000010
#define EDP_MISC1_MISC0_COLOR__MASK				0x000000e0
#define EDP_MISC1_MISC0_COLOR__SHIFT				5
static inline uint32_t EDP_MISC1_MISC0_COLOR(enum edp_color_depth val)
{
	return ((val) << EDP_MISC1_MISC0_COLOR__SHIFT) & EDP_MISC1_MISC0_COLOR__MASK;
}
#define EDP_MISC1_MISC0_MISC1__MASK				0x0000ff00
#define EDP_MISC1_MISC0_MISC1__SHIFT				8
static inline uint32_t EDP_MISC1_MISC0_MISC1(uint32_t val)
{
	return ((val) << EDP_MISC1_MISC0_MISC1__SHIFT) & EDP_MISC1_MISC0_MISC1__MASK;
}
#define EDP_MISC1_MISC0_INTERLACED_ODD				0x00000100
#define EDP_MISC1_MISC0_STEREO__MASK				0x00000600
#define EDP_MISC1_MISC0_STEREO__SHIFT				9
static inline uint32_t EDP_MISC1_MISC0_STEREO(uint32_t val)
{
	return ((val) << EDP_MISC1_MISC0_STEREO__SHIFT) & EDP_MISC1_MISC0_STEREO__MASK;
}

#define REG_EDP_PHY_CTRL					0x00000074
#define EDP_PHY_CTRL_SW_RESET_PLL				0x00000001
#define EDP_PHY_CTRL_SW_RESET					0x00000004

#define REG_EDP_MAINLINK_READY					0x00000084
#define EDP_MAINLINK_READY_TRAIN_PATTERN_1_READY		0x00000008
#define EDP_MAINLINK_READY_TRAIN_PATTERN_2_READY		0x00000010
#define EDP_MAINLINK_READY_TRAIN_PATTERN_3_READY		0x00000020

#define REG_EDP_AUX_CTRL					0x00000300
#define EDP_AUX_CTRL_ENABLE					0x00000001
#define EDP_AUX_CTRL_RESET					0x00000002

#define REG_EDP_INTERRUPT_REG_1					0x00000308
#define EDP_INTERRUPT_REG_1_HPD					0x00000001
#define EDP_INTERRUPT_REG_1_HPD_ACK				0x00000002
#define EDP_INTERRUPT_REG_1_HPD_EN				0x00000004
#define EDP_INTERRUPT_REG_1_AUX_I2C_DONE			0x00000008
#define EDP_INTERRUPT_REG_1_AUX_I2C_DONE_ACK			0x00000010
#define EDP_INTERRUPT_REG_1_AUX_I2C_DONE_EN			0x00000020
#define EDP_INTERRUPT_REG_1_WRONG_ADDR				0x00000040
#define EDP_INTERRUPT_REG_1_WRONG_ADDR_ACK			0x00000080
#define EDP_INTERRUPT_REG_1_WRONG_ADDR_EN			0x00000100
#define EDP_INTERRUPT_REG_1_TIMEOUT				0x00000200
#define EDP_INTERRUPT_REG_1_TIMEOUT_ACK				0x00000400
#define EDP_INTERRUPT_REG_1_TIMEOUT_EN				0x00000800
#define EDP_INTERRUPT_REG_1_NACK_DEFER				0x00001000
#define EDP_INTERRUPT_REG_1_NACK_DEFER_ACK			0x00002000
#define EDP_INTERRUPT_REG_1_NACK_DEFER_EN			0x00004000
#define EDP_INTERRUPT_REG_1_WRONG_DATA_CNT			0x00008000
#define EDP_INTERRUPT_REG_1_WRONG_DATA_CNT_ACK			0x00010000
#define EDP_INTERRUPT_REG_1_WRONG_DATA_CNT_EN			0x00020000
#define EDP_INTERRUPT_REG_1_I2C_NACK				0x00040000
#define EDP_INTERRUPT_REG_1_I2C_NACK_ACK			0x00080000
#define EDP_INTERRUPT_REG_1_I2C_NACK_EN				0x00100000
#define EDP_INTERRUPT_REG_1_I2C_DEFER				0x00200000
#define EDP_INTERRUPT_REG_1_I2C_DEFER_ACK			0x00400000
#define EDP_INTERRUPT_REG_1_I2C_DEFER_EN			0x00800000
#define EDP_INTERRUPT_REG_1_PLL_UNLOCK				0x01000000
#define EDP_INTERRUPT_REG_1_PLL_UNLOCK_ACK			0x02000000
#define EDP_INTERRUPT_REG_1_PLL_UNLOCK_EN			0x04000000
#define EDP_INTERRUPT_REG_1_AUX_ERROR				0x08000000
#define EDP_INTERRUPT_REG_1_AUX_ERROR_ACK			0x10000000
#define EDP_INTERRUPT_REG_1_AUX_ERROR_EN			0x20000000

#define REG_EDP_INTERRUPT_REG_2					0x0000030c
#define EDP_INTERRUPT_REG_2_READY_FOR_VIDEO			0x00000001
#define EDP_INTERRUPT_REG_2_READY_FOR_VIDEO_ACK			0x00000002
#define EDP_INTERRUPT_REG_2_READY_FOR_VIDEO_EN			0x00000004
#define EDP_INTERRUPT_REG_2_IDLE_PATTERNs_SENT			0x00000008
#define EDP_INTERRUPT_REG_2_IDLE_PATTERNs_SENT_ACK		0x00000010
#define EDP_INTERRUPT_REG_2_IDLE_PATTERNs_SENT_EN		0x00000020
#define EDP_INTERRUPT_REG_2_FRAME_END				0x00000200
#define EDP_INTERRUPT_REG_2_FRAME_END_ACK			0x00000080
#define EDP_INTERRUPT_REG_2_FRAME_END_EN			0x00000100
#define EDP_INTERRUPT_REG_2_CRC_UPDATED				0x00000200
#define EDP_INTERRUPT_REG_2_CRC_UPDATED_ACK			0x00000400
#define EDP_INTERRUPT_REG_2_CRC_UPDATED_EN			0x00000800

#define REG_EDP_INTERRUPT_TRANS_NUM				0x00000310

#define REG_EDP_AUX_DATA					0x00000314
#define EDP_AUX_DATA_READ					0x00000001
#define EDP_AUX_DATA_DATA__MASK					0x0000ff00
#define EDP_AUX_DATA_DATA__SHIFT				8
static inline uint32_t EDP_AUX_DATA_DATA(uint32_t val)
{
	return ((val) << EDP_AUX_DATA_DATA__SHIFT) & EDP_AUX_DATA_DATA__MASK;
}
#define EDP_AUX_DATA_INDEX__MASK				0x00ff0000
#define EDP_AUX_DATA_INDEX__SHIFT				16
static inline uint32_t EDP_AUX_DATA_INDEX(uint32_t val)
{
	return ((val) << EDP_AUX_DATA_INDEX__SHIFT) & EDP_AUX_DATA_INDEX__MASK;
}
#define EDP_AUX_DATA_INDEX_WRITE				0x80000000

#define REG_EDP_AUX_TRANS_CTRL					0x00000318
#define EDP_AUX_TRANS_CTRL_I2C					0x00000100
#define EDP_AUX_TRANS_CTRL_GO					0x00000200

#define REG_EDP_AUX_STATUS					0x00000324

static inline uint32_t REG_EDP_PHY_LN(uint32_t i0) { return 0x00000400 + 0x40*i0; }

static inline uint32_t REG_EDP_PHY_LN_PD_CTL(uint32_t i0) { return 0x00000404 + 0x40*i0; }

#define REG_EDP_PHY_GLB_VM_CFG0					0x00000510

#define REG_EDP_PHY_GLB_VM_CFG1					0x00000514

#define REG_EDP_PHY_GLB_MISC9					0x00000518

#define REG_EDP_PHY_GLB_CFG					0x00000528

#define REG_EDP_PHY_GLB_PD_CTL					0x0000052c

#define REG_EDP_PHY_GLB_PHY_STATUS				0x00000598

#define REG_EDP_28nm_PHY_PLL_REFCLK_CFG				0x00000000

#define REG_EDP_28nm_PHY_PLL_POSTDIV1_CFG			0x00000004

#define REG_EDP_28nm_PHY_PLL_CHGPUMP_CFG			0x00000008

#define REG_EDP_28nm_PHY_PLL_VCOLPF_CFG				0x0000000c

#define REG_EDP_28nm_PHY_PLL_VREG_CFG				0x00000010

#define REG_EDP_28nm_PHY_PLL_PWRGEN_CFG				0x00000014

#define REG_EDP_28nm_PHY_PLL_DMUX_CFG				0x00000018

#define REG_EDP_28nm_PHY_PLL_AMUX_CFG				0x0000001c

#define REG_EDP_28nm_PHY_PLL_GLB_CFG				0x00000020
#define EDP_28nm_PHY_PLL_GLB_CFG_PLL_PWRDN_B			0x00000001
#define EDP_28nm_PHY_PLL_GLB_CFG_PLL_LDO_PWRDN_B		0x00000002
#define EDP_28nm_PHY_PLL_GLB_CFG_PLL_PWRGEN_PWRDN_B		0x00000004
#define EDP_28nm_PHY_PLL_GLB_CFG_PLL_ENABLE			0x00000008

#define REG_EDP_28nm_PHY_PLL_POSTDIV2_CFG			0x00000024

#define REG_EDP_28nm_PHY_PLL_POSTDIV3_CFG			0x00000028

#define REG_EDP_28nm_PHY_PLL_LPFR_CFG				0x0000002c

#define REG_EDP_28nm_PHY_PLL_LPFC1_CFG				0x00000030

#define REG_EDP_28nm_PHY_PLL_LPFC2_CFG				0x00000034

#define REG_EDP_28nm_PHY_PLL_SDM_CFG0				0x00000038

#define REG_EDP_28nm_PHY_PLL_SDM_CFG1				0x0000003c

#define REG_EDP_28nm_PHY_PLL_SDM_CFG2				0x00000040

#define REG_EDP_28nm_PHY_PLL_SDM_CFG3				0x00000044

#define REG_EDP_28nm_PHY_PLL_SDM_CFG4				0x00000048

#define REG_EDP_28nm_PHY_PLL_SSC_CFG0				0x0000004c

#define REG_EDP_28nm_PHY_PLL_SSC_CFG1				0x00000050

#define REG_EDP_28nm_PHY_PLL_SSC_CFG2				0x00000054

#define REG_EDP_28nm_PHY_PLL_SSC_CFG3				0x00000058

#define REG_EDP_28nm_PHY_PLL_LKDET_CFG0				0x0000005c

#define REG_EDP_28nm_PHY_PLL_LKDET_CFG1				0x00000060

#define REG_EDP_28nm_PHY_PLL_LKDET_CFG2				0x00000064

#define REG_EDP_28nm_PHY_PLL_TEST_CFG				0x00000068
#define EDP_28nm_PHY_PLL_TEST_CFG_PLL_SW_RESET			0x00000001

#define REG_EDP_28nm_PHY_PLL_CAL_CFG0				0x0000006c

#define REG_EDP_28nm_PHY_PLL_CAL_CFG1				0x00000070

#define REG_EDP_28nm_PHY_PLL_CAL_CFG2				0x00000074

#define REG_EDP_28nm_PHY_PLL_CAL_CFG3				0x00000078

#define REG_EDP_28nm_PHY_PLL_CAL_CFG4				0x0000007c

#define REG_EDP_28nm_PHY_PLL_CAL_CFG5				0x00000080

#define REG_EDP_28nm_PHY_PLL_CAL_CFG6				0x00000084

#define REG_EDP_28nm_PHY_PLL_CAL_CFG7				0x00000088

#define REG_EDP_28nm_PHY_PLL_CAL_CFG8				0x0000008c

#define REG_EDP_28nm_PHY_PLL_CAL_CFG9				0x00000090

#define REG_EDP_28nm_PHY_PLL_CAL_CFG10				0x00000094

#define REG_EDP_28nm_PHY_PLL_CAL_CFG11				0x00000098

#define REG_EDP_28nm_PHY_PLL_EFUSE_CFG				0x0000009c

#define REG_EDP_28nm_PHY_PLL_DEBUG_BUS_SEL			0x000000a0


#endif /* EDP_XML */
